#pragma once
#include <iostream>
#include <string>
#include <vector>
#include <sstream>

#include "Cond_type.h"
#include "Validator.h"

using namespace std;

class Column
{
public:
	Column(void);
	virtual ~Column(void);
	virtual stringstream select() const = 0;
	virtual stringstream select(const vector<int>&) const = 0;
	virtual vector<int> select_list() const = 0;
	virtual void del() = 0;
	virtual void del(const vector<int>&) = 0;
	virtual void insert() = 0;
	string get_name() const;
	virtual string get_type_name() const = 0;
	string get_is_null() const;
	virtual int get_size() const = 0;

protected:
	string name;
	bool null_ok;
	vector<Cond_type> valid_cond;
};

